";
}
else {
echo "";
}
die();
}
if (isset($_POST['is_posted'])) {
check_token();
$msg="";
$error = false;
//=======================================
// MODIF: boireaus
/*
$reg_nom_groupe = $_POST['groupe_nom_court'];
$reg_nom_complet = $_POST['groupe_nom_complet'];
*/
//$reg_nom_groupe = html_entity_decode($_POST['groupe_nom_court']);
$reg_nom_groupe = html_entity_decode($_POST['groupe_nom_court'],ENT_QUOTES,"UTF-8");
//$reg_nom_complet = html_entity_decode($_POST['groupe_nom_complet']);
$reg_nom_complet = html_entity_decode($_POST['groupe_nom_complet'],ENT_QUOTES,"UTF-8");
//=======================================
$reg_matiere = $_POST['matiere'];
if (empty($reg_nom_groupe)) {
$error = true;
$msg .= "Vous devez donner un nom court au groupe. \n";
}
if (empty($reg_nom_groupe)) {
$error = true;
$msg .= "Vous devez donner un nom complet au groupe. \n";
}
$clazz = array();
// Classes
if ($_POST['mode'] == "groupe") {
// Ajout sécurité:
if((!isset($id_classe))||($id_classe=='')) {$id_classe=$current_group['classes']['list'][0];}
$clazz[] = $id_classe;
$reg_id_classe = $id_classe;
$mode = "groupe";
} else if ($_POST['mode'] == "regroupement") {
$mode = "regroupement";
foreach ($_POST as $key => $value) {
if (preg_match("/^classe\_/", $key)) {
$temp = explode("_", $key);
$id = $temp[1];
$clazz[] = $id;
}
}
foreach ($_POST as $key => $value) {
if (preg_match("/^precclasse\_/", $key)) {
$temp = explode("_", $key);
$tmpid = $temp[1];
// On vérifie si la classe a été décochée:
if(!isset($_POST['classe_'.$tmpid])){
// On vérifie si l'identifiant de classe $tmpid peut être décoché.
unset($tabtmp);
$tabtmp=array();
$test=0;
$test2=0;
$sql="SELECT DISTINCT login FROM j_eleves_classes WHERE id_classe='$tmpid'";
$res_tmp=mysqli_query($GLOBALS["mysqli"], $sql);
while($lig_tmp=mysqli_fetch_object($res_tmp)){
$sql="SELECT 1=1 FROM matieres_notes WHERE id_groupe='$id_groupe' AND login='$lig_tmp->login'";
//echo "$sql \n";
$res_test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_test)>0){
//echo "$lig_tmp->login \n";
if(!in_array($lig_tmp->login,$tabtmp)){$tabtmp[]=$lig_tmp->login;}
$test++;
}
$sql="SELECT 1=1 FROM matieres_appreciations WHERE id_groupe='$id_groupe' AND login='$lig_tmp->login'";
//echo "$sql \n";
$res_test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_test)>0){
//echo "$lig_tmp->login \n";
if(!in_array($lig_tmp->login,$tabtmp)){$tabtmp[]=$lig_tmp->login;}
$test2++;
}
}
$sql="SELECT classe FROM classes WHERE id='$tmpid'";
$res_tmp=mysqli_query($GLOBALS["mysqli"], $sql);
$lig_tmp=mysqli_fetch_object($res_tmp);
$clas_tmp=$lig_tmp->classe;
//if(!$verify){
if(($test>0)||($test2>0)){
/*
$sql="SELECT classe FROM classes WHERE id='$tmpid'";
$res_tmp=mysql_query($sql);
$lig_tmp=mysql_fetch_object($res_tmp);
$clas_tmp=$lig_tmp->classe;
*/
$error = true;
$msg .= "Des données existantes bloquent la suppression de la classe $clas_tmp du groupe. \nAucune note ni appréciation du bulletin ne doit avoir été saisie pour les élèves de ce groupe pour permettre la suppression du groupe. \n";
if(count($tabtmp)==1){
$msg.="L'élève ayant des moyennes ou appréciations saisies est $tabtmp[0]. \n";
}
else{
$msg.="Les élèves ayant des moyennes ou appréciations saisies sont $tabtmp[0]";
for($i=1;$i\n";
}
// Et on remet la classe dans la liste des classes:
$clazz[] = $tmpid;
}
else{
// On teste aussi si il y a des élèves de la classe dans le groupe.
$sql="SELECT jeg.login FROM j_eleves_groupes jeg, j_eleves_classes jec WHERE
jeg.login=jec.login AND
jeg.periode=jec.periode AND
jeg.id_groupe='$id_groupe' AND
jec.id_classe='$tmpid'";
//echo "$sql \n";
$res_ele_clas_grp=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_ele_clas_grp)>0){
$error = true;
$msg .= "Des données existantes bloquent la suppression de la classe $clas_tmp du groupe. \nAucun élève de la classe ne doit être inscrit dans le groupe. \nEnlevez les élèves du groupe avant. \n";
// Et on remet la classe dans la liste des classes:
$clazz[] = $tmpid;
}
}
}
}
}
}
// On ajoute un test pour s'assurer qu'on n'a pas un tableau vide pour les classes
if (count($clazz) == 0) {
$clazz[0] = $id_classe;
}
for($loo=0;$loo";
$suppr=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$suppr) {$msg.="Erreur lors de la suppression de l'invisibilité du groupe n°".$id_groupe." sur les ".$tab_domaines_texte[$loo].". ";}
}
}
else {
if($visibilite_groupe_domaine_courant=='n') {
$sql="INSERT j_groupes_visibilite SET id_groupe='".$id_groupe."', domaine='".$tab_domaines[$loo]."', visible='n';";
//echo "$sql ";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {$msg.="Erreur lors de l'enregistrement de l'invisibilité du groupe n°".$id_groupe." sur les ".$tab_domaines_texte[$loo].". ";}
}
}
}
// Professeurs
$reg_professeurs = array();
foreach ($_POST as $key => $value) {
if (preg_match("/^prof\_/", $key)) {
$id = preg_replace("/^prof\_/", "", $key);
$proflogin = $_POST["proflogin_".$id];
// Normalement on a un traitement anti-injection sur $_POST, donc pas de soucis.
// Mais ça serait bien de faire un test quand même. Si un dev passe par là...
//$reg_professeurs[] = $proflogin;
$sql="SELECT 1=1 FROM j_professeurs_matieres WHERE id_professeur='$proflogin' AND id_matiere='$reg_matiere';";
$test_prof_matiere=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test_prof_matiere)>0) {
$reg_professeurs[] = $proflogin;
}
}
}
$reg_clazz = $clazz;
if(isset($_POST['associer_tous_les_profs_de_la_classe'])) {
for($loo=0;$loo0) {
while($lig_prof=mysqli_fetch_object($res_prof)) {
if(!in_array($lig_prof->login, $reg_professeurs)) {
$reg_professeurs[]=$lig_prof->login;
}
}
}
}
}
if(isset($_POST['associer_tous_les_profs_de_l_etablissement'])) {
$sql="SELECT login FROM utilisateurs WHERE statut='professeur' AND etat='actif';";
$res_prof=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_prof)>0) {
while($lig_prof=mysqli_fetch_object($res_prof)) {
if(!in_array($lig_prof->login, $reg_professeurs)) {
$reg_professeurs[]=$lig_prof->login;
}
}
}
}
if(isset($_POST['associer_pp_de_la_classe'])) {
for($loo=0;$loo0) {
while($lig_prof=mysqli_fetch_object($res_prof)) {
if(!in_array($lig_prof->login, $reg_professeurs)) {
$reg_professeurs[]=$lig_prof->login;
}
}
}
}
}
$tab_profs_matiere=array();
$sql="SELECT DISTINCT id_professeur FROM j_professeurs_matieres WHERE id_matiere='$reg_matiere';";
$res_prof_matiere=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_prof_matiere)>0){
while($lig_prof_matiere=mysqli_fetch_object($res_prof_matiere)){
$tab_profs_matiere[]=$lig_prof_matiere->id_professeur;
}
}
// On vérifie que les profs de la liste sont bien associés à la matière:
for($loo=0;$loo";
$res_ordre=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_ordre)==0) {
$ordre_matiere=1;
}
else {
$ordre_matiere=old_mysql_result($res_ordre, 0, "max_ordre_matiere")+1;
}
$sql="INSERT INTO j_professeurs_matieres SET id_professeur='".$reg_professeurs[$loo]."', id_matiere='$reg_matiere', ordre_matieres='$ordre_matiere';";
//echo "$sql ";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
}
}
// 20160419
//$code_modalite_elect=isset($_POST['code_modalite_elect']) ? $_POST['code_modalite_elect'] : array();
$code_modalite_elect_eleves=$current_group["modalites"];
/*
echo "Apres modif: ";
foreach($reg_clazz as $key => $value) {
echo "\$reg_clazz[$key]=$value ";
}
*/
if (empty($reg_clazz)) {
$error = true;
$msg .= "Vous devez sélectionner au moins une classe. \n";
}
if (!$error) {
// pas d'erreur : on continue avec la mise à jour du groupe
//$create = update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves);
$create = update_group($id_groupe, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves, $code_modalite_elect_eleves);
if (!$create) {
$msg .= "Erreur lors de la mise à jour du groupe.";
} else {
//======================================
// MODIF: boireaus
//$msg = "Le groupe a bien été mis à jour.";
$msg = "Enseignement ". stripslashes($reg_nom_complet) . " bien mis à jour. ";
if(isset($_POST['creer_sous_groupes'])) {
if((!isset($_POST['nb_sous_groupes_a_creer']))||($_POST['nb_sous_groupes_a_creer']=='')||(!preg_match("/^[0-9]*$/", $_POST['nb_sous_groupes_a_creer']))||($_POST['nb_sous_groupes_a_creer']<1)) {
$msg.="Erreur : Le nombre de sous-groupes demandés est invalide. ";
}
else {
//20130912 $reg_categorie à récupérer...
$current_group=get_group($id_groupe);
$reg_categorie=$current_group["classes"]["classes"][$reg_clazz[0]]["categorie_id"];
$nb_sous_groupes_a_creer=$_POST['nb_sous_groupes_a_creer'];
$suffixe_sous_groupe_a_creer=isset($_POST['suffixe_sous_groupe_a_creer']) ? $_POST['suffixe_sous_groupe_a_creer'] : "";
for($loop=0;$loop<$nb_sous_groupes_a_creer;$loop++) {
$reg_nom_sous_groupe=$reg_nom_groupe;
$reg_nom_complet_sous_groupe=$reg_nom_complet;
if($suffixe_sous_groupe_a_creer=="1") {
$reg_nom_sous_groupe.="_".($loop+1);
$reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".($loop+1).")";
}
elseif($suffixe_sous_groupe_a_creer=="g1") {
$reg_nom_sous_groupe.="_g".($loop+1);
$reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".($loop+1).")";
}
elseif($suffixe_sous_groupe_a_creer=="A") {
$alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$reg_nom_sous_groupe.="_".substr($alphabet, $loop, 1);
$reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".substr($alphabet, $loop, 1).")";
}
$create = create_group($reg_nom_sous_groupe, $reg_nom_complet_sous_groupe, $reg_matiere, $reg_clazz, $reg_categorie);
if (!$create) {
$msg .= "Erreur lors de la création du sous-groupe $reg_nom_sous_groupe. ";
} else {
// Puis mise à jour avec la liste des élèves, la visibilité
$id_sous_groupe=$create;
// Visibilité du sous-groupe
for($loo=0;$loo";
$suppr=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$suppr) {$msg.="Erreur lors de la suppression de l'invisibilité du groupe n°".$id_sous_groupe." sur les ".$tab_domaines_texte[$loo].". ";}
}
}
else {
if($visibilite_groupe_domaine_courant=='n') {
$sql="INSERT j_groupes_visibilite SET id_groupe='".$id_sous_groupe."', domaine='".$tab_domaines[$loo]."', visible='n';";
//echo "$sql ";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$insert) {$msg.="Erreur lors de l'enregistrement de l'invisibilité du groupe n°".$id_sous_groupe." sur les ".$tab_domaines_texte[$loo].". ";}
}
}
}
// Elèves du sous-groupe
$reg_eleves_sous_groupe=array();
if($nb_sous_groupes_a_creer==1) {
$reg_eleves_sous_groupe=$reg_eleves;
}
else {
foreach ($current_group["periodes"] as $period) {
$reg_eleves_sous_groupe[$period["num_periode"]]=array();
$nb_ele_restants=count($current_group["eleves"][$period["num_periode"]]["list"]);
$nb_sous_groupes_restants=$nb_sous_groupes_a_creer;
$rang_prec=0;
$rang[-1]=0;
for($loop_grp=0;$loop_grp<$nb_sous_groupes_a_creer;$loop_grp++) {
$tranche[$loop_grp]=ceil($nb_ele_restants/$nb_sous_groupes_restants);
$rang[$loop_grp]=$rang_prec+$tranche[$loop_grp];
$nb_ele_restants-=$tranche[$loop_grp];
$nb_sous_groupes_restants--;
$rang_prec=$rang[$loop_grp];
}
for($loop_ele=$rang[$loop-1];$loop_ele<$rang[$loop];$loop_ele++) {
$reg_eleves_sous_groupe[$period["num_periode"]][]=$current_group["eleves"][$period["num_periode"]]["list"][$loop_ele];
}
/*
for($loop_ele=0;$loop_ele=$loop*$tranche+1)&&
($loop_ele+1<($loop+1)*$tranche+1)) {
$reg_eleves_sous_groupe[$period["num_periode"]][]=$current_group["eleves"][$period["num_periode"]]["list"][$loop_ele];
}
}
*/
}
}
$update = update_group($id_sous_groupe, $reg_nom_sous_groupe, $reg_nom_complet_sous_groupe, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves_sous_groupe);
if (!$update) {
$msg .= "Erreur lors de la mise à jour du sous-groupe ".$reg_nom_sous_groupe.". ";
}
}
}
}
}
$msg = urlencode($msg);
if(isset($chemin_retour)) {
if(strstr($chemin_retour,'utilisateurs/index.php')) {
// On n'arrive sur edit_group.php en venant de utilisateurs/index.php que depuis la partie Gestion de comptes utilisateurs Personnels de l'établissement
if(isset($ancre)) {
header("Location: $chemin_retour?&msg=$msg&mode=personnels#$ancre");
}
else {
header("Location: $chemin_retour?&msg=$msg&mode=personnels");
}
}
else {
header("Location: $chemin_retour?&msg=$msg");
}
}
else{
header("Location: ./edit_class.php?id_classe=$id_classe&msg=$msg");
}
//======================================
}
$current_group = get_group($id_groupe);
}
}
/* DEBUG
echo "